
// 封装axios请求模块
import axios from 'axios'
// 引入store实例
import store from '@/store'
import JSONBig from 'json-bigint' // 引入大数字包
const instance = axios.create({
  baseURL: 'http://toutiao-app.itheima.net',
  // 做大数处理
  transformResponse: [function (data) {
    try {
      return JSONBig.parse(data)
    } catch (err) {
      return data
    }
  }]
})

/**
 * @description:Axios做请求拦截器
 * @param {*}
 * @return {*}
 */
// 设置请求拦截器 从vuex中取出token数据 添加到请求头中，让每一个请求的headers中都有token
instance.interceptors.request.use((config) => {
  // 一定记得那个设置完请求头信息后将config返回出去
  // 如果能在vuex中取到token就设置到请求头中
  const token = store.state.tokenInfo.token
  if (token) {
    config.headers.Authorization = `Bearer ${token}`
  }
  return config
}, (error) => {
  return Promise.reject(error)
})
// 导出供api下的接口封装使用
export default instance
